世界首个商用编程语言已经60岁了
导读:COBOL这门语言距其发明到如今已经60周岁了。即便如此,这个面向公共业务的古老语言在很多地方仍在仍然使用。
程序员 Donald Cropper、KC Krishnan、Grace Hopper 与 Norman Rothberg 以及 Univac I 的控制台。
(图片来源:EEE History Center)
上个世纪 50 年代,计算机科学真的是“科学”,只有专业人员才能编写应用,当时的编程语言只有机器和汇编语言。
COBOL发明于1959年。计算机技术的蓬勃发展,每天都在发明新的编程语言,研究表明,编程语言的增加,但编程成本也在增长。当时为了解决这个问题,Mary K.Hawes在1959年4月8日召开了一次重要会议,讨论开发通用业务语言的可能性。来自学术界的专家以及计算机用户还有厂商均有到场。
其中Grace Hopper是名为FLOW-MAGIC语言的创建者,当时和人们一同在场。接下来的与会者们要求美国国防部在财务上支持这一通用语言的创建。此时美国防部也正在找方法来节省现有400多台计算机和软件开发成本,于是也欣然同意。
在1959年9月19日,一个名为Common Business Language的语言正式诞生,简称为COBOL,即通用事务处理之通用语言。
有很多人会有60年前的编程语言已经不能再用的观点。其实不然,在许多公司,比如银行等部门,这门语言还占据着很重要的位置。
COBOL 语言引入了类似英语的词汇表,使得在不同计算机上执行基本的业务任务变得方便。
到1960 年 12 月,COBOL 程序已经可以运行在两个不同供应商的计算机上,这证明了它是真正可互操作的,COBOL 开始成为第一门真正的商务编程语言。
COBOL 是最早的高级编程语言之一,也是世界上第一个商用语言,它是一种面向数据处理、面向文件、面向过程的高级编程语言。
COBOL 适合于具有循环处理周期的环境(例如打印工资支票),以及数据操纵量相当大的环境,在数据处理领域最广为人知 。其语法与英文很接近,即使不懂电脑的人也能看懂程序。
从诞生之日起,直到 20 世纪 80 年代,COBOL 一直是业界首选的商用编程语言。虽然遭遇了其它语言的兴起,但是 COBOL 仍然没有倒下。
根据 COBOL 咨询公司 COBOL Cowboys 的数据,目前仍有 2000 亿行 COBOL 代码被使用,90% 的财富 500 强公司仍然使用 COBOL 代码。此外,目前的 ATM 几乎都使用 COBOL 作为后台代码。
当前 COBOL 由 Micro Focus 运营,Micro Focus 的全球产品营销总监 Derek Britton 曾对外表示: “虽然市场规模很难确定,但我们知道目前运行 COBOL 系统的组织数量已达数万个。每天都有无法估计数量的终端用户使用到基于 COBOL 的应用程序接口,全球有 70% 的交易处理系统使用 COBOL。”
随着时代的发展,COBOL 其实也分化出了多个版本,并且事实上,目前有些人正在将 COBOL 应用迁移到当前大热的云端。
在COBOL发展60年之际,一位开发者采访了Micro Focus的高级技术客户经理Rolf Becking,他从1985年以来一直在使用COBOL。
以下是两个人的采访记录,enjoy it:
开发者:Hello Rolf,感谢你抽出宝贵时间接受本次采访。COBOL在今年届满60岁,这真是一个编程语言的骄傲时代。所以请你先点亮COBOL的历史,我们的许多读者都比编程语言更年轻,有人可能从未听说过它。
Rolf Becking:COBOL的想法是在20世纪50年代末出现的,它的目标是让程序员生活更轻松,而且能写出更好的程序。因为在那之前,编程主要是汇编程序,在处理器级别使用非常有限的语法。而使用COBOL,它实现的是一种高级编程语言,指令集中更类似于英语,比如包含ADD,MOVE,IF,CALL等命令,因此从机器级别解放出来,这使编程更容易,允许开发人员更多地关注要解决的任务,而不是考虑基于处理器指令集的实现。同时,由于命令的易于理解,在COBOL中创建的程序的维护变得更加容易。
开发人员:让我们来看技术部分。编程语言COBOL有哪些属性?它设计的应用程序类型是什么?
Rolf Becking:COBOL是第一个包含类似于英语的命令集的高级编程语言。它专为经济高效的应用程序而设计,即任何必须处理和计算金额的应用程序。因此,各种不同的数据类型是COBOL的专长之一,特别是对于带小数位的数字字段。此外,那时存储空间远远不能达到如今的数量,当然也相应地昂贵。因此,在COBOL中,存在需要很少存储空间的特殊数据类型,例如Packed Decimal在一个字节中存储两个数字的任何地方。
开发人员:您能否勾画一个Hello World程序示例,使其更具可视性?
Rolf Becking: COBOL程序由一系列分段组成,这些分段是固定的。它们将程序细分为一个用于识别的部分,有程序的名称和作者的名称。环境部描述环境,例如程序想要读取或写入的文件,然后在数据部中使用的数据字段。最后,程序分区包含程序代码。以下是COBOL写的Hello World程序,代码如下:
IDENTIFICATION DIVISION. PROGRAM-ID. HELLO. ENVIRONMENT DIVISION. CONFIGURATION SECTION. DATA DIVISION. WORKING-STORAGE SECTION. PROCEDURE DIVISION. DISPLAY "HELLO WORLD!" GOBACK. END PROGRAM HELLO. |
开发人员:虽然今天很多编程语言比COBOL更受欢迎,但COBOL在某种程度上仍然存在,它今天主要用在什么领域?
Rolf Becking:自从在1968年、1974年、1985年发布COBOL语言和ANSI标准之后,该语言被全球广泛采用,特别是银行,保险证券以及养老机构应用,还有行政和工业等领域。它至今仍在这些领域中使用。部分原因是因为有大量用COBOL编写的软件仍然在运行,有的应用甚至超过20年、30年、40年。这也带来了COBOL语言的另一个优点:它已经发展了很多年,但旧标准仍然适用,今天的编译器始终能毫无问题地编译旧程序。
开发人员:几年前,美国宇航局正寻找COBOL程序员来开发旅行者航天器。COBOL是否有新的开发功能,或者COBOL仅仅能管理老旧技术?换句话说,COBOL会消亡吗?
Rolf Becking:在过去的几十年里,COBOL经历了IT行业中几乎所有的技术发展。在今天,你也可以在COBOL中实现SOB和REST Web服务,并从优秀的旧程序中调用它们,可以在.NET世界中运行COBOL,从而连接到所有.NET Framework技术,也可以将它们编译为Java字节码在Java Application Server上无缝运行。COBOL还可以处理XML和JSON,支持Docker容器在云端运行。
好吧,我不认为COBOL语言会消失,即使30多年前就有人说过。
开发人员:在你看来,哪种编程语言在2080年可能还在使用?
Rolf Becking:毫无疑问是COBOL。其他编程语言哪种可以追溯这么长的历史?在过去60年里,有很多的现代语言都已从视线中消失。
开发者:你打算如何庆祝COBOL的60岁生日?
Rolf Becking:带着一杯香槟与老同事庆贺,因为是COBOL让我开始了开发者的职业生涯。
开发者:感恩,非常感谢Rolf的采访!
作者:Rolf Becking是Micro Focus的高级技术客户经理,还是一名数学家,自1985年以来一直从事COBOL的工作。首先是编译器开发,现在是专注在使用Micro Focus产品中实现COBOL现代化应用的建议。
相关阅读:
活动推荐:
1、洛逸老师亲授;
2、16年以上的老程序员、畅销书作者;
3、把以前走过的路,踩过的坑,打过的仗都想给到你;
3、只要大专以上理工专业均可参加;
4、另有多位PHP大牛,架构师提供项目指导。
5、学这几个月,能顶三年。心动不如行动。点击这里看详情~